Method, System and Program Product for Searching a Database

ABSTRACT

A method, system and program product comprises displaying a search window comprising a selection portion and a results portion. The selection portion being configured for displaying at least selectable items in a categorical hierarchy. The results portion being configured for displaying at least a result of a search of a dynamic database. A user&#39;s selection of said selectable items is transmitted to a server in which the server conducts a search of the dynamic database using criteria of the selected items. The results of search are received from the server. The results are paginated to fit within the results portion. A page of the paginated results is displayed in the results portion.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present Utility patent application claims priority benefit of the U.S. provisional application for patent Ser. No. 61/423,245 entitled “Bond Trading System and Method”, filed on Dec. 15, 2010 under 35 U.S.C. 119(e). The contents of this related provisional application are incorporated herein by reference for all purposes to the extent that such subject matter is not inconsistent herewith or limiting hereof.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

REFERENCE TO SEQUENCE LISTING, A TABLE, OR A COMPUTER LISTING APPENDIX

Not applicable.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure as it appears in the Patent and Trademark Office, patent file or records, but otherwise reserves all copyright rights whatsoever.

FIELD OF THE INVENTION

One or more embodiments of the invention generally relate to communications systems. More particularly, one or more embodiments of the invention relate to communications systems for financial securities.

BACKGROUND OF THE INVENTION

The following background information may present examples of specific aspects of the prior art (e.g., without limitation, approaches, facts, or common wisdom) that, while expected to be helpful to further educate the reader as to additional aspects of the prior art, is not to be construed as limiting the present invention, or any embodiments thereof, to anything stated or implied therein or inferred thereupon.

Electronic trading for fixed income products has existed since the late 90's and continues to grow today. Existing applications in the market allow bond investors to ask bond dealers for quotes electronically and without having to pick up a phone. To a lesser extent, some applications post executable prices and if a matching order is found, these applications provide a means by which a transaction may be executed. There are three major characteristics of existing electronic bond trading systems, and they are steaming quotes, auto-execute matched orders and client application.

Streaming quotes represent the ability for an application to push live market prices to users (push technology) when the underlying market changes, allowing the user to see the latest prices. An alternate to push technology exists where the market prices may change, but the change is not be provided to the user unless the user asks for a quote refresh (pull technology). Existing applications use either push or pull technology.

Auto-execute matched orders represents how a trading system handles two matching orders (a “buy” order and a “sell” order). Typically, existing systems need to confirm orders with the order originator before providing execution. Confirmation of an order is normally needed by existing systems since existing systems are often slower in response time and a human confirmation of orders is needed to prevent errors.

Client application represents how a user can access an application server over an Internet connection. This can be accomplished in two ways. The first is by downloading a client application on to a user's computer and installing that application to provide the user with access to the application server. The second is by accessing the server application via an Internet web browser.

In view of the foregoing, it is clear that these traditional techniques are not perfect and leave room for more optimal approaches.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:

FIG. 1 illustrates an example Treasury security categorical hierarchy, in accordance with an embodiment of the present invention;

FIG. 2 illustrates an example agencies categorical hierarchy, in accordance with an embodiment of the present invention;

FIG. 3 illustrates an example corporate security categorical hierarchy, in accordance with an embodiment of the present invention;

FIG. 4 illustrates an example municipal security categorical hierarchy, in accordance with an embodiment of the present invention;

FIGS. 5, and 5A-5E illustrates example presentations, in accordance with an embodiment of the present invention;

FIG. 6 illustrates an example format for tables, in accordance with an embodiment of the present invention;

FIG. 7 illustrates an example flow diagram, in accordance with an embodiment of the present invention;

FIG. 8 illustrates an example method for the system, in accordance with an embodiment of the present invention;

FIG. 9 illustrates a block diagram depicting a conventional client/server communication system;

FIG. 10 illustrates a typical computer system that, when appropriately configured or designed, may serve as a computer system 1000 for which the present invention may be embodied;

FIG. 11 illustrates an example one-click trade entry, in accordance with an embodiment of the present invention; and

FIG. 12 illustrates an example one-click trade execution, in accordance with an embodiment of the present invention.

Unless otherwise indicated illustrations in the figures are not necessarily drawn to scale.

DETAILED DESCRIPTION OF SOME EMBODIMENTS

Embodiments of the present invention are best understood by reference to the detailed figures and description set forth herein.

Embodiments of the invention are discussed below with reference to the Figures. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments. For example, it should be appreciated that those skilled in the art will, in light of the teachings of the present invention, recognize a multiplicity of alternate and suitable approaches, depending upon the needs of the particular application, to implement the functionality of any given detail described herein, beyond the particular implementation choices in the following embodiments described and shown. That is, there are numerous modifications and variations of the invention that are too numerous to be listed but that all fit within the scope of the invention. Also, singular words should be read as plural and vice versa and masculine as feminine and vice versa, where appropriate, and alternative embodiments do not necessarily imply that the two are mutually exclusive.

It is to be further understood that the present invention is not limited to the particular methodology, compounds, materials, manufacturing techniques, uses, and applications, described herein, as these may vary. It is also to be understood that the terminology used herein is used for the purpose of describing particular embodiments only, and is not intended to limit the scope of the present invention. It must be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include the plural reference unless the context clearly dictates otherwise. Thus, for example, a reference to “an element” is a reference to one or more elements and includes equivalents thereof known to those skilled in the art. Similarly, for another example, a reference to “a step” or “a means” is a reference to one or more steps or means and may include sub-steps and subservient means. All conjunctions used are to be understood in the most inclusive sense possible. Thus, the word “or” should be understood as having the definition of a logical “or” rather than that of a logical “exclusive or” unless the context clearly necessitates otherwise. Structures described herein are to be understood also to refer to functional equivalents of such structures. Language that may be construed to express approximation should be so understood unless the context clearly dictates otherwise.

Unless defined otherwise, all technical and scientific terms used herein have the same meanings as commonly understood by one of ordinary skill in the art to which this invention belongs. Preferred methods, techniques, devices, and materials are described, although any methods, techniques, devices, or materials similar or equivalent to those described herein may be used in the practice or testing of the present invention. Structures described herein are to be understood also to refer to functional equivalents of such structures. The present invention will now be described in detail with reference to embodiments thereof as illustrated in the accompanying drawings.

From reading the present disclosure, other variations and modifications will be apparent to persons skilled in the art. Such variations and modifications may involve equivalent and other features which are already known in the art, and which may be used instead of or in addition to features already described herein.

Although Claims have been formulated in this Application to particular combinations of features, it should be understood that the scope of the disclosure of the present invention also includes any novel feature or any novel combination of features disclosed herein either explicitly or implicitly or any generalization thereof, whether or not it relates to the same invention as presently claimed in any Claim and whether or not it mitigates any or all of the same technical problems as does the present invention.

Features which are described in the context of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination. The Applicants hereby give notice that new Claims may be formulated to such features and/or combinations of such features during the prosecution of the present Application or of any further Application derived therefrom.

References to “one embodiment,” “an embodiment,” “example embodiment,” “various embodiments,” etc., may indicate that the embodiment(s) of the invention so described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic. Further, repeated use of the phrase “in one embodiment,” or “in an exemplary embodiment,” do not necessarily refer to the same embodiment, although they may.

As is well known to those skilled in the art many careful considerations and compromises typically must be made when designing for the optimal manufacture of a commercial implementation any system, and in particular, the embodiments of the present invention. A commercial implementation in accordance with the spirit and teachings of the present invention may configured according to the needs of the particular application, whereby any aspect(s), feature(s), function(s), result(s), component(s), approach(es), or step(s) of the teachings related to any described embodiment of the present invention may be suitably omitted, included, adapted, mixed and matched, or improved and/or optimized by those skilled in the art, using their average skills and known techniques, to achieve the desired implementation that addresses the needs of the particular application.

A “computer” may refer to one or more apparatus and/or one or more systems that are capable of accepting a structured input, processing the structured input according to prescribed rules, and producing results of the processing as output. Examples of a computer may include: a computer; a stationary and/or portable computer; a computer having a single processor, multiple processors, or multi-core processors, which may operate in parallel and/or not in parallel; a general purpose computer; a supercomputer; a mainframe; a super mini-computer; a mini-computer; a workstation; a micro-computer; a server; a client; an interactive television; a web appliance; a telecommunications device with internet access; a hybrid combination of a computer and an interactive television; a portable computer; a tablet personal computer (PC); a personal digital assistant (PDA); a portable telephone; application-specific hardware to emulate a computer and/or software, such as, for example, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application specific integrated circuit (ASIC), an application specific instruction-set processor (ASIP), a chip, chips, a system on a chip, or a chip set; a data acquisition device; an optical computer; a quantum computer; a biological computer; and generally, an apparatus that may accept data, process data according to one or more stored software programs, generate results, and typically include input, output, storage, arithmetic, logic, and control units.

“Software” may refer to prescribed rules to operate a computer. Examples of software may include: code segments in one or more computer-readable languages; graphical and or/textual instructions; applets; pre-compiled code; interpreted code; compiled code; and computer programs.

A “computer-readable medium” may refer to any storage device used for storing data accessible by a computer. Examples of a computer-readable medium may include: a magnetic hard disk; a floppy disk; an optical disk, such as a CD-ROM and a DVD; a magnetic tape; a flash memory; a memory chip; and/or other types of media that can store machine-readable instructions thereon.

A “computer system” may refer to a system having one or more computers, where each computer may include a computer-readable medium embodying software to operate the computer or one or more of its components. Examples of a computer system may include: a distributed computer system for processing information via computer systems linked by a network; two or more computer systems connected together via a network for transmitting and/or receiving information between the computer systems; a computer system including two or more processors within a single computer; and one or more apparatuses and/or one or more systems that may accept data, may process data in accordance with one or more stored software programs, may generate results, and typically may include input, output, storage, arithmetic, logic, and control units.

A “network” may refer to a number of computers and associated devices that may be connected by communication facilities. A network may involve permanent connections such as cables or temporary connections such as those made through telephone or other communication links. A network may further include hard-wired connections (e.g., coaxial cable, twisted pair, optical fiber, waveguides, etc.) and/or wireless connections (e.g., radio frequency waveforms, free-space optical waveforms, acoustic waveforms, etc.). Examples of a network may include: an internet, such as the Internet; an intranet; a local area network (LAN); a wide area network (WAN); and a combination of networks, such as an internet and an intranet.

Exemplary networks may operate with any of a number of protocols, such as Internet protocol (IP), asynchronous transfer mode (ATM), and/or synchronous optical network (SONET), user datagram protocol (UDP), IEEE 802.x, etc.

Embodiments of the present invention may include apparatuses for performing the operations disclosed herein. An apparatus may be specially constructed for the desired purposes, or it may comprise a general-purpose device selectively activated or reconfigured by a program stored in the device.

Embodiments of the invention may also be implemented in one or a combination of hardware, firmware, and software. They may be implemented as instructions stored on a machine-readable medium, which may be read and executed by a computing platform to perform the operations described herein.

In the following description and claims, the terms “computer program medium” and “computer readable medium” may be used to generally refer to media such as, but not limited to, removable storage drives, a hard disk installed in hard disk drive, and the like. These computer program products may provide software to a computer system. Embodiments of the invention may be directed to such computer program products.

An algorithm is here, and generally, considered to be a self-consistent sequence of acts or operations leading to a desired result. These include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers or the like. It should be understood, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.

Unless specifically stated otherwise, and as may be apparent from the following description and claims, it should be appreciated that throughout the specification descriptions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.

In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data from registers and/or memory to transform that electronic data into other electronic data that may be stored in registers and/or memory. A “computing platform” may comprise one or more processors.

A non-transitory computer readable medium includes, but is not limited to, a hard drive, compact disc, flash memory, volatile memory, random access memory, magnetic memory, optical memory, semiconductor based memory, phase change memory, optical memory, periodically refreshed memory, and the like; however, the non-transitory computer readable medium does not include a pure transitory signal per se.

Embodiments of the present invention will be described which provide means and methods for presenting information associated with securities. System provides point-and-click for selecting parameters associated with securities. System provides metadata and database schemes for storing data in a categorical and hierarchical manner Furthermore, user may be presented with an interface guiding the user for performing searching for securities. System provides presentation feedback associated with a user's actions. Furthermore, user may be presented with information associated with improper actions. System provides metadata and database schemes for representing and categorizing information into categorical hierarchies that enable intuitive searching.

FIG. 1 illustrates an example Treasury security categorical hierarchy, in accordance with an embodiment of the present invention.

A categorical hierarchy 100 includes information for type, sub type, maturity and rating.

Categorical hierarchy 100 provides hierarchical information associated with Treasury securities.

FIG. 1 illustrates an example categorical hierarchy for Treasury securities.

FIG. 2 illustrates an example agencies categorical hierarchy, in accordance with an embodiment of the present invention.

A categorical hierarchy 200 includes information for type, agency, maturity and rating.

Categorical hierarchy 200 provides hierarchical information associated with agencies securities.

FIG. 2 illustrates an example agencies categorical hierarchy.

FIG. 3 illustrates an example corporate security categorical hierarchy, in accordance with an embodiment of the present invention.

A categorical hierarchy 300 includes information for type, sector, maturity and rating.

Categorical hierarchy 300 provides hierarchical information associated with corporate securities.

FIG. 3 illustrates an example corporate security categorical hierarchy.

FIG. 4 illustrates an example municipal security categorical hierarchy, in accordance with an embodiment of the present invention.

A categorical hierarchy 400 includes information for type, states, collateral, maturity and rating.

Categorical hierarchy 400 provides hierarchical information associated with municipal securities.

FIG. 4 illustrates an example municipal security categorical hierarchy.

FIG. 5 illustrates an example presentation, in accordance with an embodiment of the present invention. More specifically, FIG. 5 illustrates an example presentation where a presentation receives a user selected search criteria from pointing, clicking, and entering information and requests a search to be performed on the server that returns information to the client that presents the information for viewing.

FIG. 5A illustrates exemplary additional columns not shown in FIG. 5, in accordance with an embodiment of the present invention, which will be described below with reference across both Figures without specific qualification of the Figure source.

FIGS. 5B-5E illustrate yet further exemplary additional columns and GUI configuration options to display information not shown in FIG. 5, in accordance with an embodiment of the present invention

A presentation 500 includes a minimize 502, a maximize 504, a close 506 and a presentation portion 508.

Selecting minimize 502 transitions presentation 500 for not viewing.

Selecting maximize 504 transitions presentation 500 to the maximum size available via the Graphical User Interface (GUI).

Selecting close 506 closes or terminates presentation 500.

Presentation portion 508 presents information for viewing by a user (not shown).

Presentation portion 508 includes a search/selection portion 510 and a results presentation portion 512.

Search/selection portion 510 enables entering or selecting parameters for searching for items.

Results presentation portion 512 presents information associated with parameters entered or selected via search/selection portion 510.

As a non-limiting example, search/selection portion 510 includes a type selection 514, a state selection 516, a collateral selection 518, a maturity selection 520, a rating selection 522 and a quick search selection 524.

Type selection 514 enables selection for the type of security to search for. Non-limiting examples for type selection 514 include treasuries, agencies, corporate and municipalities. Depending on the value selected the corresponding categorical hierarchies are represented in the search/selection portion 510.

If Treasuries is selected for type selection 514, the search/selection portion 510 will reflect the options available in the categorical hierarchy for Treasury securities as described with reference to FIG. 1 and as shown in FIG. 5B.

If Agencies is selected for type selection 514, the search/selection portion 510 will reflect the options available in the categorical hierarchy for agencies securities as described with reference to FIG. 2 and as shown in FIG. 5C.

If Corporates is selected for type selection 514, the search/selection portion 510 will reflect the options available in the categorical hierarchy for corporate securities as described with reference to FIG. 3 and as shown in FIG. 5D.

If Munis is selected for type selection 514, the search/selection portion 510 will reflect the options available in the categorical hierarchy for municipal securities as described with reference to FIG. 4 and as shown in FIG. 5E.

Non-limiting example for the search/selection portion 510 and its relation to the categorical hierarchies as described with reference to FIG. 1, FIG. 2, FIG. 3, and FIG. 4 when Munis is selected for type selection 514 is shown with reference to FIG. 5.

State selection 516 enables selection for the state associated with the municipal security. Non-limiting examples for states selection 516 include Alabama, Texas, California and Delaware.

Collateral selection 518 enables selection for the collateralization of the associated municipal security. Non-limiting examples for collateral selection 518 include general obligation, revenue and other.

Maturity selection 520 enables selection for the maturity of a security. Non-limiting examples for maturity selection 520 include 0-1 years, 1-2 years, 2-5 years, 7-10 years and 10+years.

Rating selection 522 enables selection for the rating of a security. Non-limiting examples for rating selection 522 include high grade, high yield, medium grade and highly speculative.

Quick search selection 524 enables insertion of information (e.g. keywords) for searching for information.

Results presentation portion 512 includes an identification information 526, a ticker identifier 528, an issuer identifier 530, a description 532, a coupon 534, a maturity 536, a bid price 538, a bid yield 540, a bid size 542, a ask price 552, a ask yield 554, a ask size 556, a S&P (Standard and Poor's) rating 558, a trade selection 544, a calculator selection 546, an add to/remove from watch list selection 548 and a more detail selection 550.

Identification information 526 presents identification information associated with issuance of the security. Ticker identifier 528 presents a shortened identifier associated with the security. Issuer identifier 530 presents information associated with the issuer of the security. Description 532 presents a description of the associated security. Coupon 534 presents information associated with the coupon for the security. Maturity 536 presents information associated with the time frame for the maturity of the security. Bid price 538 presents information associated with the bid price for a security. Bid yield 540 presents information associated with the yield to maturity based upon the bid price. Bid size 542 presents information associated with the size of the securities available at the bid price. Ask price 552 presents information associated with the ask price for a security. Ask yield 554 presents information associated with the yield to maturity based upon the ask price. Ask size 556 presents information associated with the size of the securities available at the ask price. S&P (Standard and Poor's) rating 558 presents information associated with the credit rating of the security issued by rating agency S&P (Standard and Poor's). Trade selection 544 provides an order form to the user for trading the associated security. Calculator selection 546 presents a calculator for performing calculations associated with the security. Add to/remove from watch list selection 548 enables a user to add or remove the associated security from the watch list. More detail selection 550 selection enables presentation of more detailed information associated with the security.

Results presentation portion 512 presents results dynamically as parameters associated with search/selection portion 510 are modified. The search criteria are updated dynamically as the user manipulates the search. Furthermore, following a preconfigured timeout where no user actions are performed, the request to server is delayed. Following the elapse of the timeout, the search criteria are communicated to the server for processing. Furthermore, pagination and sorting capabilities associated with results presentation portion 512 are performed.

Pagination provides improved performance by decreasing the result set returned from the server. The implementation of pagination functionality has backend requirements such as retrieving information from an offset and the number of records to be retrieved. Furthermore, database may provide information for configuring the range for the associated record.

System tracks the grid height of results presentation portion 512 and requests additional data pages for the initial request and followed by presenting additional pages when providing scroll information. A non-limiting example for request for additional data pages is three pages. A non-limiting example for presentation of additional pages when scrolling is 1.5 pages. System calculates offset and number of rows needed to present and then requests the following pages from the server followed by waiting for the result. As the results are received from the server, the received records are stored in the associated location depending upon the offset and received rows count, such that results presentation portion 512 is updated for viewing.

System maintains state information and determines whether it is to execute a completely new search (e.g. offset=0, rowscount=pagesize*3) or continue the previous search (e.g. offset>0, rowscount=pagesize*1.5) based upon user input.

A user triggers the search process by point, clicking or changing parameters. Point, clicking or changing parameters updates and configures the values to reflect the associated search criteria. For example, if the user selects Treasuries for type selection 514 and bills for a sub type, then the corresponding search will be configured to search for Treasuries and Bills. A new search selection pre-empts pre-existing or pending selections for search. A preconfigured amount of time may be waited for executing a new selection.

Presented information may be sorted by selecting a column header in results presentation portion 512.

Intuitive quick search enables a user knowing or approximately knowing what they are searching for to access the targeted securities. Intuitive quick search performs a real-time search based on text entered. As the text is entered, the system returns results matching the criteria entered by the user. The search may be performed using a more intuitive contextual search that gives CUSIPs more priority in the search, but also allows for other terms, such as, but not limited to tickers, issuer names, issue descriptions, coupon and maturity date. The system combines defined logic with defined manual static mappings such as tickers, SIC codes and maintain the static mappings.

FIG. 6 illustrates an example format for tables, in accordance with an embodiment of the present invention.

A tables portion 600 includes a table 602, a table 604, a table 606, a table 608, a table 610, a table 612, a table 614 and a table 616.

The data contained with the tables associated with tables portion 600 is parsed and stored either as is or translated based upon specifications provided by the data provider. The data used for simplified and intuitive search criteria are derived via proprietary logic based upon the parsed data.

Received data is parsed and processed in order to conform and extract values associated with tables portion 600 such that the associated security information may be represented in categorical hierarchies as described with reference to FIG. 1, FIG. 2, FIG. 3, and FIG. 4.

Table 602 contains information associated with security master and is updated daily via download from a data provider via the global network. Furthermore, the downloaded data is parsed for populating table 602. Furthermore, table 602 stores the security descriptive data for the associated security and top level proprietary categorization of types.

Table 604 is a subset of table 602. Furthermore, table 604 contains information associated with CUSIPs associated with market data representing the active securities in the universe of tradable securities. The system simple search is based off of the information contained in table 604. Table 604 is maintained dynamically where information associated with a security is copied from table 602 to table 604 if the security does not exist when information is received for the security. Furthermore, information associated with a security is removed from table 604 if information is not received for the security within a preconfigured amount of time. Furthermore, table 604 stores the security descriptive data for the associated security and top level proprietary categorization of types.

Table 606 is a lookup table defining how the state list for municipal securities is presented for viewing.

Table 608 is a lookup table defining how the collateral list for municipal securities is presented for viewing.

Table 610 is a lookup table defining how the sub types listed for Treasury securities are presented for viewing.

Table 612 is a lookup table defining how the agency list for agencies is presented for viewing.

Table 614 is a lookup table defining how the sector list for corporate securities is presented for viewing.

Table 616 is a lookup table categorizing Occupational Safety and Health Administration's (OSHA) Standard Industrial Classification (SIC) codes into categories listed in table 614.

FIG. 6 illustrates an example format for tables where received data is parsed and processed for storage in the tables and information stored in the tables may be retrieved and represents the categorical hierarchies as described with reference to FIG. 1, FIG. 2, FIG. 3, and FIG. 4.

FIG. 7 illustrates an example flow diagram, in accordance with an embodiment of the present invention.

A flow diagram 700 includes a first client side flow 702, a first backend flow 704, a second client side flow 706 and a second backend flow 708.

First client side flow 702 includes a user action 710, a search controller 712, a bond search collection 714, a bonds data collection 716 and a remote object 718.

User action 710 indicates an action by a user (e.g. simple search, point-and-click).

Search controller 712 is a categorization from the Model-View-Controller (MVC) framework/design pattern. Search controller 712 is responsible for manipulating and coordinating between the view and the model. The view represents the GUI as viewed by the user. The model is the internal representation and storage of the data that the view presents to the user and the controller maintains. Search controller 712 updates bond search criteria which acts as the filter for the server side call for searching.

Bond search collection 714 controls the paging mechanism by keeping track of the needed pages.

Bonds data collection 716 holds the data returned from the server side search that is triggered and called by search controller 712.

Remote object 718 handles the communications and services related to remote procedure calls and serialization for forwarding calls and parameters to server side services.

First backend flow 704 includes a database query 720, a security search service 722, a search extender 724 and an application server 726.

Database query 720 represents a query of a database.

Security search service 722 constructs the database query based on parameters (e.g. search criteria and pagination and sorting information) passed from search extender 724 and executes the query against the database.

Search extender 724 provides a destination point/entry point for the search service associated with the server. Search extender 724 then delegates the search to security search service 722 receive the actual results. Security search service 722 receives the information provided by search extender 724 and constructs a query for the database and returns the results back to search extender 724. Furthermore, search extender 724 provides further processing (e.g. best quotes and markups for quotes).

Application server 726 implements Action Message Format (AMF) protocol via HTTP enabling communication between client and server.

Second client side flow 706 includes a user action 728, a search controller 730, a bond search collection 732, a bonds data collection 734 and a remote object 736.

User action 728 indicates an action by a user (e.g. scrolls to 70 records position).

Search controller 730 is a categorization from the Model-View-Controller (MVC) framework/design pattern. Search controller 712 is responsible for manipulating and coordinating between the view and the model. The view represents the GUI as viewed by the user. The model is the internal representation and storage of the data that is the view presents to the user and the controller maintains. Search controller 712 updates bond search criteria which acts as the filter for the server side call for searching.

Bond search collection 732 controls the paging mechanism by keeping track of the needed pages.

Bonds data collection 734 holds the data returned from the server side search that is triggered and called by search controller 730.

Remote object 736 handles the communications and services related to remote procedure calls and serialization for forwarding calls and parameters to server side services.

Second backend flow 708 includes a database query 738, a security search service 740, a search extender 742 and an application server 744.

Database query 738 represents a query of a database.

Security search service 740 constructs the database query based on parameters (e.g. search criteria and pagination and sorting information) passed from search extender 742 and executes the query against the database.

Search extender 742 provides a destination point/entry point for the search service associated with the server. Search extender 742 then delegates the search to security search service 740 receive the actual results. Security search service 740 receives the information provided by search extender 742 and constructs a query for the database and returns the results back to search extender 742. Furthermore, search extender 742 provides further processing (e.g. best quotes and markups for quotes).

Application server 744 implements Action Message Format (AMF) protocol via HTTP enabling communication between client and server.

FIG. 7 illustrates an example flow diagram for management of pagination.

FIG. 8 illustrates an example method for the system, in accordance with an embodiment of the present invention.

A method 800 initiates in a step 802.

Then in a step 804, user changes parameters.

User modifies a parameter associated with searching for securities (e.g. type selection 514 as described with reference to FIG. 5).

Referring back to FIG. 8, then in a step 806 a determination is performed as to whether needed information is local.

For a determination of information not located in local storage in step 806, in a step 810 information is requested from the server by performing a search and information is received from server by client.

For a determination of information located in local storage in step 806, in a step 808 information is retrieved from local storage.

Then in a step 812 a determination is performed as to whether sorting is needed for the information.

For a determination of sort needed for information in step 812, in a step 814 information is sorted.

For a determination of sort not needed for information in step 812, in a step 816 information is not sorted.

Then in a step 818 a determination is performed as to whether pagination is needed for the information.

For a determination of pagination needed for information in step 818, in a step 820 information is paginated.

For a determination of pagination not needed for information in step 818, in a step 822 information is not paginated.

Then in a step 826 updated information is presented for viewing.

Information is presented for viewing (e.g. presentation as described with reference to FIG. 5).

Referring back to FIG. 8, then in a step 824, user scrolls, then in a step 818 a determination is performed as to whether pagination is needed for the information, then the cycle repeats unless in a step 804, user changes parameters which starts the whole method 800 again.

Then in a step 828 execution of method 800 terminates.

FIG. 8 illustrates an example method for the system where presentation of information is provided as user changes parameters and performs scrolling.

FIG. 9 illustrates a block diagram depicting a conventional client/server communication system.

A communication system 900 includes a multiplicity of networked regions with a sampling of regions denoted as a network region 902 and a network region 904, a global network 906 and a multiplicity of servers with a sampling of servers denoted as a server device 908 and a server device 910.

Network region 902 and network region 904 may operate to represent a network contained within a geographical area or region. Non-limiting examples of representations for the geographical areas for the networked regions may include postal zip codes, telephone area codes, states, counties, cities and countries. Elements within network region 902 and 904 may operate to communicate with external elements within other networked regions or within elements contained within the same network region.

In some implementations, global network 906 may operate as the Internet. It will be understood by those skilled in the art that communication system 900 may take many different forms. Non-limiting examples of forms for communication system 900 include local area networks (LANs), wide area networks (WANs), wired telephone networks, cellular telephone networks or any other network supporting data communication between respective entities via hardwired or wireless communication networks. Global network 906 may operate to transfer information between the various networked elements.

Server device 908 and server device 910 may operate to execute software instructions, store information, support database operations and communicate with other networked elements. Non-limiting examples of software and scripting languages which may be executed on server device 908 and server device 910 include C, C++, C# and Java.

Network region 902 may operate to communicate bi-directionally with global network 906 via a communication channel 912. Network region 904 may operate to communicate bi-directionally with global network 906 via a communication channel 914. Server device 908 may operate to communicate bi-directionally with global network 906 via a communication channel 916. Server device 910 may operate to communicate bi-directionally with global network 906 via a communication channel 918. Network region 902 and 904, global network 906 and server devices 908 and 910 may operate to communicate bi-directionally and also communicate bi-directionally with other networked device located within communication system 900.

Server device 908 includes a networking device 920 and a server 922. Networking device 920 may operate to communicate bi-directionally with global network 906 via communication channel 916 and with server 922 via a communication channel 924. Server 922 may operate to execute software instructions and store information.

Network region 902 includes a multiplicity of clients with a sampling denoted as a client 926 and a client 928. Client 926 includes a networking device 934, a processor 936, a GUI 938 and an interface device 940. Non-limiting examples of devices for GUI 938 include monitors, televisions, cellular telephones, smartphones and PDAs (Personal Digital Assistants). Non-limiting examples of interface device 940 include pointing device, mouse, trackball, scanner and printer. Networking device 934 may communicate bi-directionally with global network 906 via communication channel 912 and with processor 936 via a communication channel 942. GUI 938 may receive information from processor 936 via a communication channel 944 for presentation to a user for viewing. Interface device 940 may operate to send control information to processor 936 and to receive information from processor 936 via a communication channel 946. Network region 904 includes a multiplicity of clients with a sampling denoted as a client 930 and a client 932. Client 930 includes a networking device 948, a processor 950, a GUI 952 and an interface device 954. Non-limiting examples of devices for GUI 938 include monitors, televisions, cellular telephones, smartphones and PDAs (Personal Digital Assistants). Non-limiting examples of interface device 940 include pointing devices, mousse, trackballs, scanners and printers. Networking device 948 may communicate bi-directionally with global network 906 via communication channel 914 and with processor 950 via a communication channel 956. GUI 952 may receive information from processor 950 via a communication channel 958 for presentation to a user for viewing. Interface device 954 may operate to send control information to processor 950 and to receive information from processor 950 via a communication channel 960.

For example, consider the case where a user interfacing with client 926 may want to execute a networked application. A user may enter the IP (Internet Protocol) address for the networked application using interface device 940. The IP address information may be communicated to processor 936 via communication channel 946. Processor 936 may then communicate the IP address information to networking device 934 via communication channel 942. Networking device 934 may then communicate the IP address information to global network 906 via communication channel 912. Global network 906 may then communicate the IP address information to networking device 920 of server device 908 via communication channel 916. Networking device 920 may then communicate the IP address information to server 922 via communication channel 924. Server 922 may receive the IP address information and after processing the IP address information may communicate return information to networking device 920 via communication channel 924. Networking device 920 may communicate the return information to global network 906 via communication channel 916. Global network 906 may communicate the return information to networking device 934 via communication channel 912. Networking device 934 may communicate the return information to processor 936 via communication channel 942. Processor 936 may communicate the return information to GUI 938 via communication channel 944. User may then view the return information on GUI 938.

FIG. 10 illustrates a typical computer system that, when appropriately configured or designed, may serve as a computer system 1000 for which the present invention may be embodied.

Computer system 1000 includes a quantity of processors 1002 (also referred to as central processing units, or CPUs) that may be coupled to storage devices including a primary storage 1006 (typically a random access memory, or RAM), a primary storage 1004 (typically a read-only memory, or ROM). CPU 1002 may be of various types including micro-controllers (e.g., with embedded RAM/ROM) and microprocessors such as programmable devices (e.g., RISC or SISC based, or CPLDs and FPGAs) and devices not capable of being programmed such as gate array ASICs (Application Specific Integrated Circuits) or general purpose microprocessors. As is well known in the art, primary storage 1004 acts to transfer data and instructions uni-directionally to the CPU and primary storage 1006 typically may be used to transfer data and instructions in a bi-directional manner. The primary storage devices discussed previously may include any suitable computer-readable media such as those described above. A mass storage device 1008 may also be coupled bi-directionally to CPU 1002 and provides additional data storage capacity and may include any of the computer-readable media described above. Mass storage device 1008 may be used to store programs, data and the like and typically may be used as a secondary storage medium such as a hard disk. It will be appreciated that the information retained within mass storage device 1008, may, in appropriate cases, be incorporated in standard fashion as part of primary storage 1006 as virtual memory. A specific mass storage device such as a CD-ROM 1014 may also pass data uni-directionally to the CPU.

CPU 1002 may also be coupled to an interface 1010 that connects to one or more input/output devices such as such as video monitors, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, or other well-known input devices such as, of course, other computers. Finally, CPU 1002 optionally may be coupled to an external device such as a database or a computer or telecommunications or internet network using an external connection shown generally as a network 1012, which may be implemented as a hardwired or wireless communications link using suitable conventional technologies. With such a connection, the CPU might receive information from the network, or might output information to the network in the course of performing the method steps described in the teachings of the present invention.

FIG. 11 illustrates an example one-click trade entry, in accordance with an embodiment of the present invention.

A system 1100 includes a watchlist 1102 and an order entry popup 1104.

System 1100 may utilize real-time bond market information that is accumulated within system 1100. Based on the real-time information, System 1100 can populate fields quantity and price 1108 in order entry popup 1104 when user clicks on bid or ask price 1106.

FIG. 11 illustrates an example one-click trade entry.

FIG. 12 illustrates an example one-click trade execution, in accordance with an embodiment of the present invention.

A system 1200 includes a watchlist 1202 and an activities widget 1204.

System 1200 may utilize real-time bond market information that is accumulated within system 1200. Based on the real-time information, System 1200 can execute against a bid or ask if they click on the corresponding hit or lift 1206 resulting in an execution shown in activities widget 1204.

FIG. 12 illustrates an example one-click trade execution.

Those skilled in the art will readily recognize, in light of and in accordance with the teachings of the present invention, that any of the foregoing steps and/or system modules may be suitably replaced, reordered, removed and additional steps and/or system modules may be inserted depending upon the needs of the particular application, and that the systems of the foregoing embodiments may be implemented using any of a wide variety of suitable processes and system modules, and is not limited to any particular computer hardware, software, middleware, firmware, microcode and the like. For any method steps described in the present application that can be carried out on a computing machine, a typical computer system can, when appropriately configured or designed, serve as a computer system in which those aspects of the invention may be embodied.

It will be further apparent to those skilled in the art that at least a portion of the novel method steps and/or system components of the present invention may be practiced and/or located in location(s) possibly outside the jurisdiction of the United States of America (USA), whereby it will be accordingly readily recognized that at least a subset of the novel method steps and/or system components in the foregoing embodiments must be practiced within the jurisdiction of the USA for the benefit of an entity therein or to achieve an object of the present invention. Thus, some alternate embodiments of the present invention may be configured to comprise a smaller subset of the foregoing means for and/or steps described that the applications designer will selectively decide, depending upon the practical considerations of the particular implementation, to carry out and/or locate within the jurisdiction of the USA. For example, any of the foregoing described method steps and/or system components which may be performed remotely over a network (e.g., without limitation, a remotely located server) may be performed and/or located outside of the jurisdiction of the USA while the remaining method steps and/or system components (e.g., without limitation, a locally located client) of the forgoing embodiments are typically required to be located/performed in the USA for practical considerations. In client-server architectures, a remotely located server typically generates and transmits required information to a US based client, for use according to the teachings of the present invention. Depending upon the needs of the particular application, it will be readily apparent to those skilled in the art, in light of the teachings of the present invention, which aspects of the present invention can or should be located locally and which can or should be located remotely. Thus, for any claims construction of the following claim limitations that are construed under 35 USC §112 (6) it is intended that the corresponding means for and/or steps for carrying out the claimed function are the ones that are locally implemented within the jurisdiction of the USA, while the remaining aspect(s) performed or located remotely outside the USA are not intended to be construed under 35 USC §112 (6). In some embodiments, the methods and/or system components which may be located and/or performed remotely include, without limitation: servers and global networks.

It is noted that according to USA law, all claims must be set forth as a coherent, cooperating set of limitations that work in functional combination to achieve a useful result as a whole. Accordingly, for any claim having functional limitations interpreted under 35 USC §112 (6) where the embodiment in question is implemented as a client-server system with a remote server located outside of the USA, each such recited function is intended to mean the function of combining, in a logical manner, the information of that claim limitation with at least one other limitation of the claim. For example, in client-server systems where certain information claimed under 35 USC §112 (6) is/(are) dependent on one or more remote servers located outside the USA, it is intended that each such recited function under 35 USC §112 (6) is to be interpreted as the function of the local system receiving the remotely generated information required by a locally implemented claim limitation, wherein the structures and or steps which enable, and breath life into the expression of such functions claimed under 35 USC §112 (6) are the corresponding steps and/or means located within the jurisdiction of the USA that receive and deliver that information to the client (e.g., without limitation, client-side processing and transmission networks in the USA). When this application is prosecuted or patented under a jurisdiction other than the USA, then “USA” in the foregoing should be replaced with the pertinent country or countries or legal organization(s) having enforceable patent infringement jurisdiction over the present application, and “35 USC §112 (6)” should be replaced with the closest corresponding statute in the patent laws of such pertinent country or countries or legal organization(s).

All the features disclosed in this specification, including any accompanying abstract and drawings, may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.

Having fully described at least one embodiment of the present invention, other equivalent or alternative methods of financial security communication systems according to the present invention will be apparent to those skilled in the art. The invention has been described above by way of illustration, and the specific embodiments disclosed are not intended to limit the invention to the particular forms disclosed. For example, the particular implementation of the GUI may vary depending upon the particular type computing device used. The computing devices described in the foregoing were directed to notebook computer implementations; however, similar techniques using mobile computing device implementations of the present invention are contemplated as within the scope of the present invention. The invention is thus to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the following claims.

Claim elements and steps herein may have been numbered and/or lettered solely as an aid in readability and understanding. Any such numbering and lettering in itself is not intended to and should not be taken to indicate the ordering of elements and/or steps in the claims. 

1. A method comprising the steps of: displaying a search window comprising a selection portion and a results portion, the selection portion being configured for displaying at least selectable items in a categorical hierarchy, the results portion being configured for displaying at least a result of a search of a dynamic database; transmitting a user's selection of the selectable items to a server in which the server conducts a search of the dynamic database using criteria of the selected items; receiving the results of search from the server; paginating the results to fit within the results portion; and displaying a page of the paginated results in the results portion.
 2. The method as recited in claim 1, further comprising the step of enabling the user to scroll the results portion.
 3. The method as recited in claim 2, further comprising the step of repaginating the results.
 4. The method as recited in claim 1, further comprising the step of updating portions of the selection portion upon the user's selections.
 5. The method as recited in claim 1, in which the results portion is further configured for enabling the user to select a one of the results to interact with.
 6. The method as recited in claim 1, in which the dynamic database comprises financial securities.
 7. The method as recited in claim 6, in which the results comprise securities available for trade.
 8. A system comprising: a client being configured for: displaying a search window comprising a selection portion and a results portion, the selection portion being configured for displaying at least selectable items in a categorical hierarchy, the results portion being configured for displaying at least a result of a search of a dynamic database; transmitting a user's selection of the selectable items; receiving the results of search; paginating the results to fit within the results portion; and displaying a page of the paginated results in the results portion; and a server being configured for: receiving the user's selection; conducting a search of the dynamic database using criteria of the selected items; and transmitting the result of the search to said client.
 9. The system as recited in claim 8, in which said client is further configured for enabling the user to scroll the results portion.
 10. The system as recited in claim 9, in which said client is further configured for repaginating the results.
 11. The system as recited in claim 8, in which said client is further configured for updating portions of the selection portion upon the user's selections.
 12. The system as recited in claim 8, in which the results portion is further configured for enabling the user to select a one of the results to interact with.
 13. The system as recited in claim 8, in which the dynamic database comprises financial securities.
 14. The system as recited in claim 13, in which the results comprise securities available for trade.
 15. A non-transitory program storage device readable by a machine tangibly embodying a program of instructions executable by the machine to perform a method for searching a database, comprising: computer code for displaying a search window comprising a selection portion and a results portion, the selection portion being configured for displaying at least selectable items in a categorical hierarchy, the results portion being configured for displaying at least a result of a search of a dynamic database; computer code for transmitting a user's selection of the selectable items to a server in which the server conducts a search of the dynamic database using criteria of the selected items; computer code for receiving the results of search from the server; computer code for paginating the results to fit within the results portion; and computer code for displaying a page of the paginated results in the results portion.
 16. The program storage device as recited in claim 15, further comprising computer code for enabling the user to scroll the results portion.
 17. The program storage device as recited in claim 16, further comprising computer code for repaginating the results.
 18. The program storage device as recited in claim 15, further comprising computer code for updating portions of the selection portion upon the user's selections.
 19. The program storage device as recited in claim 15, in which the results portion is further configured for enabling the user to select a one of the results to interact with.
 20. The program storage device as recited in claim 15, in which the dynamic database comprises financial securities. 